package cn.itcast.service;

import cn.itcast.pojo.*;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.transaction.annotation.Transactional;

import java.time.LocalDate;
import java.util.List;
import java.util.Set;

public interface EmpService extends IService<Emp> {
    PageBean<Emp> findEmpByPage(Integer page, Integer pageSize,String name, Integer gender, LocalDate begin, LocalDate end);

    @Transactional(rollbackFor = Exception.class)
    boolean add(Emp emp);

    /**
     * 根据id查询员工信息
     * @param id    员工id
     * @return      查询到的员工信息
     */
    Emp findById(Integer id);


    @Transactional(rollbackFor = Exception.class)
    boolean update(Emp emp);

    @Transactional(rollbackFor = Exception.class)
    boolean deleteByIds(List<Integer> ids);

    /**
     * 分页条件查询
     *
     * @param name     查询的员工的姓名
     * @param gender   查询的员工的性别
     * @param begin    查询的员工的开始时间
     * @param end      查询的员工的结束时间
     * @param page     当前页码
     * @param pageSize 每页显示的条数
     * @return PageBean分页对象
     *//*
    PageBean<Emp> findByConditionAndPage(String name, Integer gender, LocalDate begin, LocalDate end, Integer page, Integer pageSize);

    *//**
     * 添加员工
     * @param emp 员工对象
     * @return
     *//*
    @Transactional(rollbackFor = Exception.class)
    boolean add(Emp emp);

    *//**
     * 根据id查询员工
     * @param id 员工id
     * @return
     *//*
    Emp findById(Integer id);

    *//**
     * 修改员工
     * @param emp 员工对象
     * @return
     *//*
    @Transactional(rollbackFor = Exception.class)
    boolean update(Emp emp);

    *//**
     * 根据id批量删除员工
     * @param ids 员工id列表
     * @return
     *//*
    @Transactional(rollbackFor = Exception.class)
    boolean deleteByIds(List<Integer> ids);

    *//**
     * 根据性别统计员工
     * @return
     *//*
    List<EmpGender> empGenderData();
    *//**
     * 根据职位统计员工
     * @return
     *//*
    JobDataBean empJobData();

    *//**
     * 登录
     * @param username 用户名
     * @param password 密码
     * @return
     *//*
    LogInfo login(String username, String password);


    *//**
     * 查询所有员工
     * @return
     *//*
    List<Emp> findAllEmp();*/
    LogInfo login(String username, String password);

    /**
     * 获取所有员工头像
     */
    Set<String> findAllEmpImage();
}
